import {
    getCircleDetail,
    getCircleMember,
    getApplyCircle,
    getQuitCircle,
    getPost,
    deletePost
} from '../apis/cireclePost';
import {
    getPostDetail
} from '../apis/index'
const app = getApp()
// pages/circlePost/circlePost.js
Page({

    /**
     * 页面的初始数据
     */
    data: {
        serverUrl: 'http://127.0.0.1:8080',
        userStatus: false,
        circle: {},
        circleid: '',
        author: '',
        opnid: '',
        page: 1,
        list: [],
        isPullingDown: false,
        deleteStatus:false,
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {
        
        
        // 获取单个圈子信息
        getCircleDetail(options.id).then((res) => {
            this.data.opnid = app.globalData.userInfo.openid
            console.log(options.id);
            console.log("js界面获取单个圈子信息成功", res);
            this.setData({
                circle: res.data,
                circleid: options.id,
                author: res.data.author.openid
            })
            // 渲染帖子
            this.post()
        }).catch((res) => {
            console.log("js界面获取单个圈子信息失败", err);
        })

        // 获取成员状态信息
        getCircleMember(options.id).then((res) => {
            console.log("js界面获取圈子成员信息成功", res);
            this.setData({
                userStatus: res.data.status
            })
        }).catch((res) => {
            console.log("js界面获取圈子成员信息失败", err);
        })


    },
    applyCircle() {
        getApplyCircle(this.data.circleid).then((res) => {
            console.log("js界面申请加入圈子成功", res);
            if (res.data.code == 200) {
                wx.showToast({
                    title: '申请成功！',
                    icon: 'success'
                })
                setTimeout(() => {
                    this.onLoad({
                        id: this.data.circleid
                    })
                }, 1000)

            } else {
                wx.showToast({
                    title: '申请失败！',
                    icon: 'error'
                })
                setTimeout(() => {
                    this.onLoad({
                        id: this.data.circleid
                    })
                }, 1000)

            }

        }).catch((res) => {
            console.log("js界面申请加入圈子失败", err);
        })
    },

    quitCircle() {
        if (this.data.opnid == this.data.author) {
            wx.showModal({
                title: '提示',
                content: '您是圈主，不能够退出圈子！',
                complete: (res) => {
                    if (res.cancel) {
                        return
                    }

                    if (res.confirm) {
                        return
                    }
                }
            })
            return
        }
        getQuitCircle(this.data.circleid).then((res) => {
            console.log("js界面申请退出圈子成功", res);
            if (res.data.code == 200) {
                wx.showToast({
                    title: '退出成功！',
                    icon: 'success'
                })
                setTimeout(() => {
                    this.onLoad({
                        id: this.data.circleid
                    })
                }, 1000)

            } else {
                wx.showToast({
                    title: '退出失败！',
                    icon: 'error'
                })
                setTimeout(() => {
                    this.onLoad({
                        id: this.data.circleid
                    })
                }, 1000)

            }

        }).catch((err) => {
            console.log("js界面申请退出圈子失败", err);
        })
    },
    post() {
        // 封装后的获取帖子函数
        getPost(this.data.page, this.data.circleid).then((res) => {
            console.log("circlePost js界面中的帖子数据请求成功", res);
            if (res.statusCode == 404) {
                wx.showToast({
                    title: '已经到头啦！',
                    icon: 'error'
                })
                return
            }
            this.setData({
                list: this.data.list.concat(res.data.results)
            })
            // 删除按钮的实现
            for (let i = 0; i < this.data.list.length; i++  || this.data.author ==  app.globalData.userInfo.openid) {
                console.log("for循环");
                console.log(this.data.list[i]);
                if (this.data.list[i].author.openid ==  app.globalData.userInfo.openid) {
                    console.log("for循环里面的一层");
                    this.data.list[i].deleteStatus = true
                    this.setData({
                        list:this.data.list
                    })
                }
                
            }
        }).catch((err) => {
            console.log("circlePost js界面中的帖子数据请求失败", err);
        })
    },
    // 点击帖子进入帖子详情页
    postDetails: function (res) {
        console.log("用户点击了帖子详情", res);
        const postId = res.currentTarget.dataset.postid;
        getPostDetail(postId)
    },
    publishPost() {
        wx.navigateTo({
            url: '../circlePublishPost/circlePublishPost?id=' + this.data.circleid,
        })
    },
    delete(e){
    console.log(e.currentTarget.dataset.id);
    deletePost(e.currentTarget.dataset.id,this.data.author).then((res) => {
        console.log("js界面删除帖子成功", res);
        if (res.data.code == 200) {
            wx.showToast({
                title: '删除成功！',
                icon: 'success'
            })
            setTimeout(() => {
                wx.navigateBack(
                    {
                        delta:1
                    }
                )
            }, 1000)

        } else {
            wx.showToast({
                title: '删除失败！',
                icon: 'error'
            })
            setTimeout(() => {
                wx.navigateBack(
                    {
                        delta:1
                    }
                )
            }, 1000)

        }

    }).catch((err) => {
        console.log("js界面删除帖子失败", err);
    })
    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload() {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {
        // 设置标识为 true，表示正在下拉刷新
        this.setData({
            isPullingDown: true
        });
        this.onLoad({
            id: this.data.circleid
        })
        // 数据请求完成后记得调用停止下拉刷新的方法
        wx.stopPullDownRefresh();
    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {
        // 如果正在下拉刷新，则不执行上拉触底逻辑
        if (this.data.isPullingDown) {
            return;
        }
        console.log("用户下拉");
        this.data.page++
        this.post()
    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {

    }
})